home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / LANG / Runtime.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  3.3 KB  |  174 lines

  1. package java.lang;
  2.  
  3. import java.io.DataInputStream;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.util.StringTokenizer;
  9.  
  10. public class Runtime {
  11.    private static Runtime currentRuntime = new Runtime();
  12.    private String[] paths;
  13.  
  14.    public static Runtime getRuntime() {
  15.       return currentRuntime;
  16.    }
  17.  
  18.    private Runtime() {
  19.    }
  20.  
  21.    private native void exitInternal(int var1);
  22.  
  23.    public void exit(int var1) {
  24.       SecurityManager var2 = System.security;
  25.       if (var2 != null) {
  26.          var2.checkExit(var1);
  27.       }
  28.  
  29.       this.exitInternal(var1);
  30.    }
  31.  
  32.    private native Process execInternal(String[] var1, String[] var2) throws IOException;
  33.  
  34.    public Process exec(String var1) throws IOException {
  35.       return this.exec((String)var1, (String[])null);
  36.    }
  37.  
  38.    public Process exec(String var1, String[] var2) throws IOException {
  39.       int var3 = 0;
  40.       StringTokenizer var5 = new StringTokenizer(var1);
  41.       var3 = var5.countTokens();
  42.       String[] var4 = new String[var3];
  43.       var5 = new StringTokenizer(var1);
  44.  
  45.       for(int var8 = 0; var5.hasMoreTokens(); var4[var8++] = var5.nextToken()) {
  46.       }
  47.  
  48.       SecurityManager var6 = System.security;
  49.       if (var6 != null) {
  50.          var6.checkExec(var4[0]);
  51.       }
  52.  
  53.       return this.execInternal(var4, var2);
  54.    }
  55.  
  56.    public Process exec(String[] var1) throws IOException {
  57.       return this.exec((String[])var1, (String[])null);
  58.    }
  59.  
  60.    public Process exec(String[] var1, String[] var2) throws IOException {
  61.       SecurityManager var3 = System.security;
  62.       if (var3 != null) {
  63.          var3.checkExec(var1[0]);
  64.       }
  65.  
  66.       return this.execInternal(var1, var2);
  67.    }
  68.  
  69.    public native long freeMemory();
  70.  
  71.    public native long totalMemory();
  72.  
  73.    public native void gc();
  74.  
  75.    public native void runFinalization();
  76.  
  77.    public native void traceInstructions(boolean var1);
  78.  
  79.    public native void traceMethodCalls(boolean var1);
  80.  
  81.    private synchronized native String initializeLinkerInternal();
  82.  
  83.    private native String buildLibName(String var1, String var2);
  84.  
  85.    private native boolean loadFileInternal(String var1);
  86.  
  87.    private void initializeLinker() {
  88.       String var1 = this.initializeLinkerInternal();
  89.       char var2 = System.getProperty("path.separator").charAt(0);
  90.       int var3 = var1.count;
  91.       int var4 = var1.indexOf(var2, 0);
  92.  
  93.       int var6;
  94.       for(var6 = 0; var4 >= 0; var4 = var1.indexOf(var2, var4 + 1)) {
  95.          ++var6;
  96.       }
  97.  
  98.       this.paths = new String[var6 + 1];
  99.       var4 = 0;
  100.       var6 = 0;
  101.  
  102.       for(int var5 = var1.indexOf(var2, 0); var5 >= 0; var5 = var1.indexOf(var2, var4)) {
  103.          if (var5 - var4 > 0) {
  104.             this.paths[var6++] = var1.substring(var4, var5);
  105.          } else if (var5 - var4 == 0) {
  106.             this.paths[var6++] = ".";
  107.          }
  108.  
  109.          var4 = var5 + 1;
  110.       }
  111.  
  112.       this.paths[var6] = var1.substring(var4, var3);
  113.    }
  114.  
  115.    public synchronized void load(String var1) {
  116.       SecurityManager var2 = System.security;
  117.       if (var2 != null) {
  118.          var2.checkLink(var1);
  119.       }
  120.  
  121.       if (!this.loadFileInternal(var1)) {
  122.          throw new UnsatisfiedLinkError(var1);
  123.       }
  124.    }
  125.  
  126.    public synchronized void loadLibrary(String var1) {
  127.       SecurityManager var2 = System.security;
  128.       if (var2 != null) {
  129.          var2.checkLink(var1);
  130.       }
  131.  
  132.       if (this.paths == null) {
  133.          this.initializeLinker();
  134.       }
  135.  
  136.       for(int var3 = 0; var3 < this.paths.length; ++var3) {
  137.          String var4 = this.buildLibName(this.paths[var3], var1);
  138.          if (this.loadFileInternal(var4)) {
  139.             return;
  140.          }
  141.       }
  142.  
  143.       throw new UnsatisfiedLinkError("no " + var1 + " in shared library path");
  144.    }
  145.  
  146.    private native boolean isInputStreamLocalised(DataInputStream var1);
  147.  
  148.    private native void setInputStreamLocalised(DataInputStream var1);
  149.  
  150.    public InputStream getLocalizedInputStream(InputStream var1) {
  151.       if (var1 instanceof DataInputStream && this.isInputStreamLocalised((DataInputStream)var1)) {
  152.          return var1;
  153.       } else {
  154.          DataInputStream var2 = new DataInputStream(var1);
  155.          this.setInputStreamLocalised(var2);
  156.          return var2;
  157.       }
  158.    }
  159.  
  160.    private native boolean isOutputStreamLocalised(DataOutputStream var1);
  161.  
  162.    private native void setOutputStreamLocalised(DataOutputStream var1);
  163.  
  164.    public OutputStream getLocalizedOutputStream(OutputStream var1) {
  165.       if (var1 instanceof DataOutputStream && this.isOutputStreamLocalised((DataOutputStream)var1)) {
  166.          return var1;
  167.       } else {
  168.          DataOutputStream var2 = new DataOutputStream(var1);
  169.          this.setOutputStreamLocalised(var2);
  170.          return var2;
  171.       }
  172.    }
  173. }
  174.